import { createApp } from 'vue'
import App from './App.vue'
// pinia
import { createPinia } from 'pinia'
// 持久化插件
import persistedState from 'pinia-plugin-persistedstate'
// vue自定义插件
import vuePlugin from './plugins'
// 插件定义全局组件
import globalCmpPlugin from './components'

const pinia = createPinia()
// 插件
pinia.use(persistedState)

const app = createApp(App)

// vue也有插件机制 -- 通过此机制给当前应用增强功能
// vue2
// Vue.use()
// vue3
// app.use()

// 1. 对象, 要求对象必须要有 install(app,options){ ... }
// 2. 类，要求类必须要有一个静态方法 static install(app,options) { ... }
// 3. 函数，对函数名没有要求，只要是函数就可以，xxx(app,options) { ... }
app.use(vuePlugin, { title: 'abc' })
app.use(globalCmpPlugin)

app.use(pinia)

app.mount('#app')
